package sun.superstring.lambda;

import javax.swing.*;
import java.util.Arrays;

public class LambdaDemo2 {
    public static void main(String[] args) {
        // 目标：Lambda表达式简化实际示例
        test1();
        test2();
    }

    public static void test1(){
        Student[] stus = new Student[6];
        stus[0] = new Student("殷素素", 35, 171.5, '女');
        stus[1] = new Student("赵敏", 18, 168.5, '女');
        stus[4] = new Student("金毛狮王", 35, 181, '男');
        stus[2] = new Student("周芷若", 18, 172.5, '女');
        stus[3] = new Student("张无忌", 25, 170.5, '男');
        stus[5] = new Student("小昭", 19, 168.5, '女');

        // 需求：按照年龄升序排序。可以调用sun公司写好的API直接对数组进行排序
        /*Arrays.sort(stus, new Comparator<Student>() {
            @Override
            public int compare(Student o1, Student o2) {
                return o1.getAge() - o2.getAge();  // 按照年龄的升序！
            }
        });*/
//        Arrays.sort(stus, (Student o1, Student o2) -> {
//            return o1.getAge() - o2.getAge();  // 按照年龄的升序！
//        });
        Arrays.sort(stus, (o1, o2) -> o1.getAge() - o2.getAge() );


        // 遍历数组中的学生对象并输出
        for (int i = 0; i < stus.length; i++) {
            Student s = stus[i];
            System.out.println(s);
        }
    }

    public static void test2(){
        JFrame win = new JFrame("登录窗口");
        win.setSize(300, 200);  // 窗口大小
        win.setLocationRelativeTo(null);  // 居中显示
        win.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // 点击关闭按钮，程序退出

        JPanel panel = new JPanel();  // 添加一个桌布（面板），可以自适应大小
        win.add(panel);  // 添加到窗口中

        JButton btn = new JButton("登录");  // 登录按钮
        panel.add(btn);  // 添加到面板中
        // java要求必须给这个按钮添加一个点击事件的监听器对象，这样就可以监听用户的点击操作，就可以做出反应
        // 开发中不是我们要主动去写匿名内部类，而是用别人的功能的时候，别人可以让我们写一个匿名内部类吗，我们才会写

        /*btn.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                System.out.println("登录成功！！！");
            }
        });*/
        btn.addActionListener(e -> System.out.println("登录成功！！！") );

        win.setVisible(true);  // 显示窗口
    }
}
